1. Field of the Invention
The present invention relates to test architectures for integrated circuits, and in particular to test architectures that allows changing values on the scan configuration signals during the scan operation on a per shift basis.
2. Description of the Related Art
Larger and more complex logic designs in integrated circuits (ICs) lead to demands for more sophisticated testing to ensure fault-free performance of those ICs. This testing can represent a significant portion of the design, manufacture, and service cost of ICs. In a simple model, testing of an IC can include applying multiple test patterns to the inputs of a circuit and monitoring its outputs to detect the occurrence of faults. Fault coverage indicates the efficacy of the test pattern in detecting each fault in a universe of potential faults. Thus, if a set of patterns is able to detect substantially every potential fault, then fault coverage approaching 100% has been achieved.
To facilitate better faults coverage and minimize test cost, DFT (design-for-test) can be used. In one DFT technique, structures in the logic design can be used. Specifically, a logic design implemented in the IC generally includes a plurality of state elements, e.g. sequential storage elements like flip-flops. These state elements can be connected into scan chains of computed lengths, which vary based on the design. In one embodiment, all state elements in the design are scannable, i.e. each state element is in a scan chain. The state elements in the scan chains are typically called scan cells. In DFT, each scan chain includes a scan-input pin (also called a scan input herein) and a scan-output pin, which serve as control and observation nodes during the test mode.
The scan chains are loaded with the test pattern by clocking in predetermined logic signals through the scan cells. Thus, if each scan chain includes 500 scan cells, then 500 clock cycles are used to complete the loading process. Note that, for simplicity, the embodiments provided herein describe scan chains of equal length. In actual embodiments, DFT attempts to create, but infrequently achieves, this goal. Thus, in actual embodiments, software can compensate for the different scan chain lengths, thereby ensuring that outputs from each test pattern are recognized and analyzed accordingly. This methodology is known to those skilled in the art and therefore is not explained in detail herein.
Typically, the more complex the design, the more flip-flops are included in the design. Unfortunately, with relatively few inputs and outputs of the design that can be used as terminals for the scan chains, the number of flip-flops per scan chain has increased dramatically. As a result, the time required to operate the scan chains, called herein the test application time, has dramatically increased.
FIG. 1A illustrates a standard flow 100 for processing a single scan test pattern. In flow 100, step 101 sets up the scan chain configuration using flip-flops in the design, thereby identifying the scan cells of the scan chain. Step 102 shifts the scan-in values into the active scan chains. Step 103 exits the scan configuration. Step 104 applies stimulus to the test circuit inputs and measures the outputs. Step 105 pulses the clocks to capture the test circuit response in the flip-flops. Step 106 sets up the scan chain configuration. Step 107 shifts the scan-out values from the active scan chains. Step 108 exits the scan configuration.
For clarification of various steps, FIG. 1B illustrates a portion of a generic design including logic 121 and flip-flops 123. In step 101, multiplexers 122 can be added between logic 121 and flip-flops 123. Using a scan_enable (i.e. a control) signal, multiplexers 122 can be configured to allow scan-in values to be shifted into flip-flops 123 without going through logic 121 in step 102. In step 103, multiplexers 122 can be reconfigured to accept values from logic 121. At this point, stimulus can be applied to the test circuit in step 104. A pulse can be applied to the clock CLK terminals of flip-flops 123 to capture the resulting values in step 105. In step 106, multiplexers 122 can be reconfigured to shift those resulting values out through the scan chain comprising flip-flops 123. Step 108 marks the end of processing a single scan test pattern.
Notably, steps 101, 103-106, and 108 take only one clock period on the tester. However, each shift operation, e.g. steps 102 and 107, take as many clock periods as the longest scan chain. In a complex design, 200,000 flip-flops may be included. Assuming that only 10 scan chains can be provided, each scan chain would then have 20,000 (200,000/10) flip-flops, thereby requiring 20,000 clock cycles to process a single scan test pattern. Therefore, irrespective of any optimization achieved by overlapping scan operations of adjacent test patterns, test application time is dominated by the scan operation.
To detect a single fault, only a limited number of values of the test pattern may be used for fault detection. In fact, for typical test patterns, only 2% of the scan-in values may be used to test a fault. The remainder of the test pattern, i.e. the part of the test pattern not contributing to fault detection, can be filled with “don't care” values (also called logic X's).
Deterministic automatic test pattern generation (ATPG) can be used to generate the minimum set of patterns while providing fault coverage close to 100%. Specifically, in deterministic ATPG, each test pattern is designed to test for the maximum number of faults. However, even with the reduction in test patterns, deterministic ATPG patterns for complex designs still require significant storage area in the test-application equipment for the large number of patterns that are input directly to the scan chains as well as for the expected output values from the scan chains.
Therefore, a need arises for a test architecture and method that significantly reduces test data volume and test application time in an area-efficient manner.